package com.sprouting.personal.service;

import cn.hutool.core.date.DateTime;
import com.sprouting.personal.model.entity.TaskSignDetail;
import com.sprouting.personal.dao.TaskSignDetailDao;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * 签到详情 service接口实现
 *
 * @author ：sprouting
 * @date 创建时间： 2023-07-02 12:28:40
 */
@Service
@Slf4j
public class TaskSignDetailService extends ServiceImpl<TaskSignDetailDao, TaskSignDetail> {

	@Resource
	private TaskSignDetailDao taskSignDetailDao;

	/**
	 * 通过ID查询单条数据
	 * @param id 主键
	 * @return 签到组
	 */
	public TaskSignDetail getTaskSignDetailById(String id) {
		return taskSignDetailDao.getTaskSignDetailById(id);
	}

	/**
	 * 分页查询
	 * @param page 分页参数
	 * @param taskSignDetail 查询参数
	 * @return 条件查询结果
	 */
	public Page<TaskSignDetail> getTaskSignDetailPage(Page page, TaskSignDetail taskSignDetail){
		return taskSignDetailDao.getTaskSignDetailPage(page, taskSignDetail);
	}

	/**
	 * 查询区间范围内的数据
	 * @param userId 当前登录用户
	 * @param beforeStart 开始时间
	 * @param afterEnd 结束时间
	 * @param taskSignId 签到任务主表id
	 * @return
	 */
	public List<TaskSignDetail> getMenstruationSectionTime(String userId, String taskSignId, DateTime beforeStart, DateTime afterEnd) {
		return taskSignDetailDao.getMenstruationSectionTime(userId, taskSignId, beforeStart, afterEnd);
	}

	/**
	 * 根据时间和签到任务主表查询数据
	 * @param taskSignId 签到主表主键
	 * @param signTime 签到时间
	 * @return
	 */
	public TaskSignDetail getBySignTime(String taskSignId, Date signTime) {
		return taskSignDetailDao.getBySignTime(taskSignId, signTime);
	}
}
